home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / p_aa4re / bb212src / bbauxmnb.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-03-23  |  3.0 KB  |  107 lines

  1. (*===========================================================================*)
  2. (* Monitor NETROM nodes broadcast                                            *)
  3. (*                                                                           *)
  4. (*   Copyright 1988, 1989, 1992 by H. Roy Engehausen.  All rights reserved.  *)
  5. (*                                                                           *)
  6. (*===========================================================================*)
  7.  
  8. (*===========================================================================*)
  9. (* Monitor NETROM nodes broadcast                                            *)
  10. (*===========================================================================*)
  11.  
  12. PROCEDURE do_nodes_bcst;
  13.  
  14.   TYPE
  15.     nr_node_data_type = RECORD
  16.                           node_call     : ax25_call;
  17.                           node_name     : ARRAY[1..6] OF CHAR;
  18.                           neighbor      : ax25_call;
  19.                           quality       : BYTE;
  20.                         END;
  21.  
  22.   VAR
  23.     i            : BYTE;
  24.     nr_node_data : ^nr_node_data_type;
  25.     s_str        : STRING[10];
  26.     t_str        : STRING[50];
  27.  
  28.   BEGIN;
  29.  
  30.     IF in_ptr^.long_data[in_off] <> #$FF THEN
  31.       EXIT;
  32.  
  33.     t := in_ptr^;
  34.  
  35.     WITH in_ptr^ DO
  36.       BEGIN;
  37.         str_data    := 'Node broadcast from ';
  38.         long_length := LENGTH(str_data);
  39.       END;
  40.  
  41.     l_cat(in_ptr, l_substr(@t, in_off + 1, 6));
  42.     s_str := cr;
  43.     l_cat_str(in_ptr, s_str);
  44.  
  45.     monitor_window_write(in_ptr, TRUE, opt_block.opt_mon_time_stamp);
  46.  
  47.     WITH in_ptr^ DO
  48.       BEGIN;
  49.         str_data    := '';
  50.         long_length := 0;
  51.       END;
  52.  
  53.     in_off := in_off + 7;
  54.  
  55.     i := 0;
  56.     out_string := '';
  57.  
  58.     WITH in_ptr^ DO
  59.       WHILE (in_off < t.long_length) DO
  60.         BEGIN;
  61.  
  62.           IF i = 2 THEN
  63.             BEGIN;
  64.  
  65.               out_string := strip(out_string, 'T') + cr;
  66.               l_cat_str(in_ptr, out_string);
  67.  
  68.               monitor_window_write(in_ptr, FALSE, FALSE);
  69.  
  70.               long_length         := 0;
  71.               str_data            := '';
  72.               i                   := 0;
  73.               out_string          := '';
  74.  
  75.             END;
  76.  
  77.           INC(i);
  78.  
  79.           nr_node_data := @t.long_data[in_off];
  80.  
  81.           WITH nr_node_data^ DO
  82.             BEGIN;
  83.               s_str := move_array_to_str(@node_name, SIZEOF(node_name));
  84.               t_str := ax25_call_to_string(@node_call);
  85.               IF s_str <> '' THEN
  86.                 t_str := s_str + '(' + t_str + ')';
  87.  
  88.               STR(quality, s_str);
  89.               t_str := t_str + '->'
  90.                        + ax25_call_to_string(@neighbor)
  91.                        + ':' + s_str;
  92.               out_string := out_string + LEFT(t_str, 35);
  93.             END;
  94.  
  95.           in_off := in_off + SIZEOF(nr_node_data_type);
  96.  
  97.         END;
  98.  
  99.     IF out_string <> '' THEN
  100.       l_cat_str(in_ptr, out_string);
  101.  
  102.     (* Orphan fix *)
  103.  
  104.     monitor_window_write(in_ptr, FALSE, FALSE);
  105.  
  106.   END;
  107.